/*
 * MatingSystem.hpp
 *
 *  Created on: 11-01-2011
 *      Author: Przemek
 */

#pragma once

#include "geometry/Vector.hpp"
#include "pch.hpp"

class Individual;
class Genotype;

/*
 * A class which produces a random number of children of given two individuals. These children can be
 * later added to world.
 */
class MatingSystem
{
	private:
		Individual& first;
		Individual& second;

	public:
		MatingSystem(Individual& first, Individual& second);
		// mate given indivudlas and store children in first argument
		void mate(std::vector<Individual*>& chilren);
		Individual* produceChild();
		Vector generateChildPosition() const;
};
